package com.loong.loong.hik.api.entity.door;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import java.time.LocalDateTime;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.Data;

/**
 * 区域对象特征属性
 * @author jinyiang
 * @date 2023/3/22 10:03
 */
@Data
@TableName("hik_door_region")
public class HikDoorRegion {

	/**
	 * 通用名
	 */
	@NotBlank(message = "通用名不能为空")
	@Size(max = 512, message = "通用名长度不能超过512")
	private String cn;

	/**
	 * 资源编码
	 */
	@NotBlank(message = "资源编码不能为空")
	@Size(max = 64, message = "资源编码长度不能超过64")
	private String indexCode;

	/**
	 * 数据状态 0正常，-1删除
	 */
	@NotNull(message = "数据状态不能为空")
	@Min(value = -1, message = "数据状态必须为-1或0")
	@Max(value = 0, message = "数据状态必须为-1或0")
	private Integer status;

	/**
	 * 创建时间
	 */
	@TableField(fill = FieldFill.INSERT)
	private LocalDateTime createTime;

	/**
	 * 更新时间
	 */
	@TableField(fill = FieldFill.UPDATE)
	private LocalDateTime updateTime;

	/**
	 * 组织外码编号
	 */
	@NotBlank(message = "组织外码编号不能为空")
	@Size(max = 64, message = "组织外码编号长度不能超过64")
	private String externalIndexCode;

	/**
	 * 父区域联网编码 最顶层的父级编号为0
	 */
	@NotBlank(message = "父区域联网编码不能为空")
	@Size(max = 64, message = "父区域联网编码长度不能超过64")
	private String parentIndexCode;

	/**
	 * 组织排序
	 */
	@NotNull(message = "组织排序不能为空")
	private Integer orders;

	/**
	 * 组织类型 0 组织、 90 区域、 99网关自建组织
	 */
	@NotNull(message = "组织类型不能为空")
	@Min(value = 0, message = "组织类型必须为0、90或99")
	@Max(value = 99, message = "组织类型必须为0、90或99")
	private Integer orgType;

	/**
	 * 扩展信息
	 */
	@Size(max = 512, message = "扩展信息长度不能超过512")
	private String extendData;
}
